﻿using Newtonsoft.Json;

namespace Missbot.AIModule.Tuling
{
    public class TulingRequestData
    {
        [JsonProperty("reqType")]
        public int ReqType { get; set; }

        [JsonProperty("perception")]
        public PerceptionData Perception { get; set; }

        [JsonProperty("userInfo")]
        public UserInfoData UserInfo { get; set; }
    }

    public class PerceptionData
    {
        [JsonProperty("inputText")]
        public InputTextData InputText { get; set; }

        [JsonProperty("inputImage")]
        public InputImageData InputImage { get; set; }

        [JsonProperty("inputMedia")]
        public InputMediaData InputMedia { get; set; }

        [JsonProperty("selfInfo")]
        public SelfInfoData SelfInfo { get; set; }
    }

    public class InputTextData
    {
        [JsonProperty("text")]
        public string Text { get; set; }
    }

    public class InputImageData
    {
        [JsonProperty("url")]
        public string Url { get; set; }
    }

    public class InputMediaData
    {
        [JsonProperty("url")]
        public string Url { get; set; }
    }

    public class SelfInfoData
    {
        [JsonProperty("location")]
        public LocationData Location { get; set; }
    }

    public class LocationData
    {
        [JsonProperty("city")]
        public string City { get; set; }

        [JsonProperty("province")]
        public string Province { get; set; }

        [JsonProperty("street")]
        public string Street { get; set; }
    }

    public class UserInfoData
    {
        [JsonProperty("apiKey")]
        public string ApiKey { get; set; }

        [JsonProperty("userId")]
        public string UserId { get; set; }
    }
}